def first_unique_char(s: str) -> int:
    """
    找到字符串中第一个不重复的字符，并返回它的索引

    Args:
        s: 输入字符串

    Returns:
        第一个不重复字符的索引，如果不存在则返回 -1
    """
    # 统计每个字符出现的次数
    char_count = {}
    for char in s:
        char_count[char] = char_count.get(char, 0) + 1

    # 再次遍历字符串，找到第一个出现次数为1的字符
    for index, char in enumerate(s):
        if char_count[char] == 1:
            return index

    # 如果没有找到不重复的字符，返回 -1
    return -1
# 测试示例
test_cases = [
    "leetcode",
    "loveleetcode",
    "aabb",
    "hello",
    "python",
    ""
]

for test in test_cases:
    result = first_unique_char(test)
    print(f"输入: \"{test}\"")
    print(f"输出: {result}")
    print()